home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Tech Arsenal 1
/
Tech Arsenal (Arsenal Computer).ISO
/
tek-04
/
zbpc_460.zip
/
UTILITY.EXE
/
SCRNDUMP.BAS
< prev
next >
Wrap
BASIC Source File
|
1991-05-16
|
4KB
|
120 lines
DEFINTA-Z:DIMPrintbuffer(719)
"Look for command"
DO:UNTILUSR3(1)<>0
X$=INKEY$:IFLEN(X$)<1GOTO"Look for command"
IFASC(X$)=3ORASC(X$)=27MODE3:END
'Control-P generates a 16 for use as a Print-Screen Hot Key
IFASC(X$)=16GOTO"Print Screen"
FORX=457TO525:A(X)=D:NEXT:FORX=42TO458:IFHI>A(X)HI=A(X)
NEXT:RETURN
"Print Screen"
Print$=LEFT$(Printer$,1)
Lines=200:IFAdjust!>1Lines=350:IFAdjust!>2Lines=480
Width=640:IFVideo=3Width=720
LONGIFPrint$="E"ORPrint$="I"
'E is Epson Dot Matrix, I is Itty-Bitty-Machine Graphics Printer
COORDINATEWINDOW
IFPrint$="I"LPRINTControl$+CHR$(65)+CHR$(8)+Control$+CHR$(50);
IFPrint$="E"LPRINTControl$+CHR$(65);
'This is the "Logic Seeking" routine
FORY=0TOLines-1STEP8
FORX=0TOWidth-1:Bits=0
IFPOINT(X,Y)<>Color5THENBits=Bits+128
IFPOINT(X,Y+1)<>Color5THENBits=Bits+64
IFPOINT(X,Y+2)<>Color5THENBits=Bits+32
IFPOINT(X,Y+3)<>Color5THENBits=Bits+16
IFPOINT(X,Y+4)<>Color5THENBits=Bits+8
IFPOINT(X,Y+5)<>Color5THENBits=Bits+4
IFPOINT(X,Y+6)<>Color5THENBits=Bits+2
IFPOINT(X,Y+7)<>Color5THENBits=Bits+1
Printbuffer(X)=Bits
NEXTX
"PrintLine"
Pointer=0:Data$=""
"Parse Buffer"
FORX=PointerTOPointer+11:DataFound=DataFound+Printbuffer(X):NEXT
IFDataFound=0LPRINT" ";:GOTO"Update Pointer"
FORX=PointerTOPointer+11:Data$=Data$+CHR$(Printbuffer(X)):NEXT
LONGIFLEN(Data$)=252
LPRINTControl$+CHR$(76)+CHR$(252)+CHR$(0)+Data$;
Data$=""
ENDIF
"Update Pointer"
Pointer=Pointer+12:IFPointer>WidthGOTO"Line Finished"
GOTO"Parse Buffer"
"Line Finished"
LONGIFLEN(Data$)>0
LPRINTControl$+CHR$(76)+CHR$(LEN(Data$))+CHR$(0)+Data$;
ENDIF
LPRINT
NEXTY
LPRINTCHR$(12)
ENDIF
IFPrint$="I"ORPrint$="E"GOTO"Look for command"
'This is the alternate dot matrix driver
'COORDINATEWINDOW
'IFPrint$="I"LPRINTControl$+CHR$(65)+CHR$(8)+Control$+CHR$(50);
'IFPrint$="E"LPRINTControl$+CHR$(65);
'LPRINTControl$+CHR$(76)+CHR$(128)+CHR$(2);
' FORX=0TOWidth-1:Bits=0
' IFPOINT(X,Y)<>Color5THENBits=Bits+128
' IFPOINT(X,Y+1)<>Color5THENBits=Bits+64
' IFPOINT(X,Y+2)<>Color5THENBits=Bits+32
' IFPOINT(X,Y+3)<>Color5THENBits=Bits+16
' IFPOINT(X,Y+4)<>Color5THENBits=Bits+8
' IFPOINT(X,Y+5)<>Color5THENBits=Bits+4
' IFPOINT(X,Y+6)<>Color5THENBits=Bits+2
' IFPOINT(X,Y+7)<>Color5THENBits=Bits+1
' LPRINTCHR$(Bits);
' NEXTX:LPRINT
'NEXTY
'LPRINTCHR$(12)
ENDIF
GOTO"Look for command
'This is the laser printer routine
LONGIFPrint$="L"
COORDINATEWINDOW:WIDTHLPRINT=0
IFWidth=640LPRINTControl$+"*p200x500Y";ELSELPRINTControl$+"*p100x500Y";
LPRINTControl$+"*t100R";
LPRINTControl$+"*r1A";
FORY=0TOLines-1
IFWidth=640LPRINTControl$+"*b80W";ELSELPRINTControl$+"*b90W";
FORX=0TOWidthSTEP8:Bits=0
IFPOINT(X,Y)<>Color5THENBits=Bits+128
IFPOINT(X+1,Y)<>Color5THENBits=Bits+64
IFPOINT(X+2,Y)<>Color5THENBits=Bits+32
IFPOINT(X+3,Y)<>Color5THENBits=Bits+16
IFPOINT(X+4,Y)<>Color5THENBits=Bits+8
IFPOINT(X+5,Y)<>Color5THENBits=Bits+4
IFPOINT(X+6,Y)<>Color5THENBits=Bits+2
IFPOINT(X+7,Y)<>Color5THENBits=Bits+1
LPRINTCHR$(Bits);
NEXTX
'This is a "double-scan" routine for CGA graphics dump
LONGIFLines=200
IFWidth=640LPRINTControl$+"*b80W";ELSELPRINTControl$+"*b90W";
FORX=0TOWidthSTEP8:Bits=0
IFPOINT(X,Y)<>Color5THENBits=Bits+128
IFPOINT(X+1,Y)<>Color5THENBits=Bits+64
IFPOINT(X+2,Y)<>Color5THENBits=Bits+32
IFPOINT(X+3,Y)<>Color5THENBits=Bits+16
IFPOINT(X+4,Y)<>Color5THENBits=Bits+8
IFPOINT(X+5,Y)<>Color5THENBits=Bits+4
IFPOINT(X+6,Y)<>Color5THENBits=Bits+2
IFPOINT(X+7,Y)<>Color5THENBits=Bits+1
LPRINTCHR$(Bits);
NEXTX
ENDIF
NEXTY
LPRINTControl$+"*rB";:LPRINTCHR$(12)
ENDIF
GOTO"Look for command"